From : William J Nolan (wnolan+@andrew.cmu.edu)
Subject : Copper Wrap
Some good copper wrap docs are in 8wayscroller.lha which should be in
the dev/asm directory of any aminet site. (At least that's where I
learned it from). Basic theory is:
For left/right scrolling, every time you get to the end of a
tile "column", increase the bitmap pointers and draw a new column
in. This just requires a little bit of extra memory at the end of
the bitmap so that you don't go off the edge, but it's very
memory efficient. Hardware scrolling is used to scroll.
For up/down it is a little harder. You can still use hardware
scrolling, but after you've scrolled down by one tile "row",
you need to introduce a copper instruction that starts at the
bottom (or top, depending on whether you're scrolling down or
up) and works its way to the other end that changes the bitmap
pointers to display the "other part" of the bitmap. This requires
an extra 3 tile rows.
The advantages to this method are speed, since it's all hardware scrolling
and pointer updating, and you only have to blit one row or column of tiles
at a time, and memory efficiency (only need 4 extra columns, three extra
rows of tiles). The disadvantage is that its very hard to understand
:). If I ever finish this game, I will release some source
demonstrating it in blitz...